<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
     
    <html xmlns="http://www.w3.org/1999/xhtml">
    
<head>    
    <script type="text/javascript" src="http://csdnimg.cn/pubfooter/js/tracking.js" charset="utf-8"></script>  

    <script type="text/javascript">
        var protocol = window.location.protocol;
        document.write('<script type="text/javascript" src="' + protocol + '//csdnimg.cn/pubfooter/js/repoAddr2.js?v=' + Math.random() + '"></' + 'script>');
    </script>


    <script id="allmobilize" charset="utf-8" src="http://a.yunshipei.com/46aae4d1e2371e4aa769798941cef698/allmobilize.min.js"></script>
 <meta http-equiv="Cache-Control" content="no-siteapp" /><link rel="alternate" media="handheld" href="#" />

    <title>VC++2010下编译STLport,Boost - C++是促进脑死亡的最佳方式
        - 博客频道 - CSDN.NET</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="description" content="VC++2010下编译STLport,Boost&#160;&#160;最近在想向Boost转移，努力掌握Boost代码的过程中，STLport版本：5.2.1Boost版本：1.4.6.1&#160; (1.4.7.0，1.4.9.0也OK)编译器Visual Studio2010 STLPort的编译，选择Microsoft Visual Studio 20010下面的Visual St" />
    <script src="http://static.blog.csdn.net/scripts/jquery.js" type="text/javascript"></script>
    <script type="text/javascript" src="http://static.blog.csdn.net/scripts/ad.js?v=1.1"></script>
        <!--new top-->
               <link rel="stylesheet" href="http://static.csdn.net/public/common/toolbar/css/index.css">        <!--new top-->

    <link rel="Stylesheet" type="text/css" href="http://static.blog.csdn.net/skin/light_blue/css/style.css?v=1.1" />
    <link id="RSSLink" title="RSS" type="application/rss+xml" rel="alternate" href="/fullsail/rss/list" />
    <link rel="shortcut icon" href="http://csdnimg.cn/public/favicon.ico" />
    <link type="text/css" rel="stylesheet" href="http://static.blog.csdn.net/scripts/SyntaxHighlighter/styles/default.css" />
 


</head>
<body>
    
   
      <!--new top-->
    <script id="toolbar-tpl-scriptId" fixed="true" prod="blog" skin="black" src="http://static.csdn.net/public/common/toolbar/js/html.js" type="text/javascript"></script>
     <!--new top-->
    <div id="container">
        <div id="header">
    <div class="header">
        <div id="blog_title">
            <h2>
                <a href="http://blog.csdn.net/fullsail">C++是促进脑死亡的最佳方式</a></h2>
            <h3>一个老程序员坐在这个角落，看眼前人来人往。</h3>
            <div class="clear">
            </div>
        </div>
        <div class="clear">
        </div>
    </div>
</div>
<div id="navigator">
    <div class="navigator_bg">
    </div>
    <div class="navigator">
        <ul>
                <li id="btnContents"><a href="http://blog.csdn.net/fullsail?viewmode=contents"><span onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_mulu'])">
                    <img src="http://static.blog.csdn.net/images/ico_list.gif">目录视图</span></a></li>
                <li id="btnView"><a href="http://blog.csdn.net/fullsail?viewmode=list"><span onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_zhaiyao'])">
                    <img src="http://static.blog.csdn.net/images/ico_summary.gif">摘要视图</span></a></li>
                <li id="btnRss"><a href="http://blog.csdn.net/fullsail/rss/list"><span onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_RSS'])">
                    <img src="http://static.blog.csdn.net/images/ico_rss.gif">订阅</span></a></li>                

            </ul>
    </div>
</div>
<script type="text/javascript">
    var username = "fullsail";
    var _blogger = username;
    var blog_address = "http://blog.csdn.net/fullsail";
    var static_host = "http://static.blog.csdn.net";
    var currentUserName = "";  
</script>

        <div id="body">
            <div id="main">
                <div class="main">
                        <div class="ad_class">
<div class="notice tracking-ad" data-mod='popu_3' > 

<a href="http://bbs.csdn.net/topics/390812950?page=6#post-398674162"target="_blank">
<font color=blue>博客专家福利
</font></a>
&nbsp;&nbsp;&nbsp;

<a href="http://blog.csdn.net/blogdevteam/article/details/41944891">
<font color=red>2015年4月微软MVP申请</font></a>

&nbsp;&nbsp;&nbsp;&nbsp;

<a href="http://blog.csdn.net/blogdevteam/article/details/41842837">
<font color=red>有奖征文--我亲历的京东发展史
</font></a>
&nbsp;&nbsp;&nbsp;&nbsp;

<a href="http://hero.csdn.net/ ">
<font color=blue>参与迷你编程马拉松赢iPhone 6
</font></a>

</div>                        </div>
                        

  
<link href="http://static.blog.csdn.net/css/comment1.css" type="text/css" rel="stylesheet" />
<link href="http://static.blog.csdn.net/css/style1.css" type="text/css" rel="stylesheet" />
<script language='JavaScript' type='text/javascript' src='http://download.csdn.net/js/jquery.cookie.js'></script>
<script type="text/javascript" src="http://csdnimg.cn/rabbit/search-service/main.js"></script>
  <script type="text/ecmascript">
      window.quickReplyflag = true;
    </script>
<div id="article_details" class="details">
    <div class="article_title">   
         <span class="ico ico_type_Original"></span>


    <h1>
        <span class="link_title"><a href="/fullsail/article/details/6848945">
        VC++2010下编译STLport,Boost
        </a></span>
    </h1>
</div>

    <div class="article_manage">
        <span class="link_categories">
        分类：
            <a href="/fullsail/article/category/426163" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_fenlei']);">C++是促进脑死亡的最佳方式</a> 
        </span>
    <span class="link_postdate">2011-10-07 18:21</span>
    <span class="link_view" title="阅读次数">5585人阅读</span>
    <span class="link_comments" title="评论次数"><a href="#comments" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_pinglun'])">评论</a>(1)</span>
    <span class="link_collect"><a href="javascript:void(0);" onclick="javascript:_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_shoucang']);collectArticle('VC++2010下编译STLport,Boost','6848945');return false;" title="收藏">收藏</a></span>
    <span class="link_report"><a href="#report"  onclick="javascript:_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_jubao']);report(6848945,2);return false;" title="举报">举报</a></span>
    
</div>
<div class="tag2box"><a href='http://www.csdn.net/tag/2010' target=_blank onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_tag']);">2010</a><a href='http://www.csdn.net/tag/vc%2b%2b' target=_blank onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_tag']);">vc++</a><a href='http://www.csdn.net/tag/library' target=_blank onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_tag']);">library</a><a href='http://www.csdn.net/tag/microsoft' target=_blank onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_tag']);">microsoft</a><a href='http://www.csdn.net/tag/%e5%a4%9a%e7%ba%bf%e7%a8%8b' target=_blank onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_tag']);">多线程</a><a href='http://www.csdn.net/tag/makefile' target=_blank onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_tag']);">makefile</a></div>

  
    
<div id="article_content" class="article_content">

<p></p>
<p style="text-align:center"><span style="font-size:32px">VC&#43;&#43;2010下编译STLport,Boost</span></p>
<div>
<p><span style="font-size:18px">&nbsp;</span></p>
</div>
<p><span style="font-size:18px">&nbsp;</span></p>
<p>最近在想向Boost转移，努力掌握Boost代码的过程中，</p>
<p>STLport版本：5.2.1</p>
<p>Boost版本：1.4.6.1&nbsp; (1.4.7.0，1.4.9.0也OK)</p>
<p>编译器Visual Studio2010 </p>
<p>STLPort的编译，选择Microsoft Visual Studio 20010下面的Visual Studio Tools下面的命令行环境编译工具，Visual Studio Command Prompt(2010)。</p>
<p>进入STLport目录，运行</p>
<div>
<p>cd E:\HaveFun\STLport\STLport.5.2.1</p>
<p>configure.bat msvc9</p>
<p>cd buidl/lib</p>
<p>nmake clean install</p>
</div>
<p>但编译会出现错误，</p>
<div>
<p>E:\HaveFun\STLport\STLport.5.2.1\stlport\stl/_cstdlib.h(158): error C2084: func</p>
<p>tion '__int64 abs(__int64)' already has a body</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;C:\Program Files\Microsoft Visual Studio 10.0\VC\INCLUDE\../include/stdl</p>
<p>ib.h(471) : see previous definition of 'abs'</p>
<p>NMAKE : fatal error U1077: '&quot;C:\ProgramFiles\Microsoft Visual Studio 10.0\VC\BI</p>
<p>N\cl.EXE&quot;' : return code '0x2'</p>
</div>
<p>估计是STLport还没有支持2010的问题导致的，检查了以代码，和google了一下问题，将_cstdlib.h(158)代码修正为，</p>
<div>
<p>#if !defined(_STLP_MSVC) || (_STLP_MSVC &lt; 1600) </p>
<p>inline _STLP_LONG_LONG&nbsp; abs(_STLP_LONG_LONG __x) { return __x &lt; 0? -__x : __x; }</p>
<p>#endif&nbsp; </p>
</div>
<p>注意_STLP_MSVC 和 _MSC_VER 是一个东东，就是VC的版本号，</p>
<p><br>
</p>
<p></p>
<p>STLPort编译很快就完成了，现在的机器搞定这个库已经是小意思了。默认应该有2个STLport版本，使用动态运行史库的动态库版本，使用静态运行时库的静态库版本。同时文件名称包含stld的版本是调试模式版本，在你使用宏_STLP_DEBUG生效。</p>
<p>STLport会自动进行链接，而且是根据你工程选择的是使用动态runtime library还是静态runtimelibrary进行控制，决定让你使用静态库还是动态库，而你如果希望你的工程使用动态runtime library，同时链接STLport的静态库就必须用到交叉编译的库，编译使用在host.h文件中_STLP_USE_STATIC_LIB的宏，同时在配置时使用参数configure.bat &nbsp;--with-dynamic-rtl。详细见下表。</p>
<table border="1" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td valign="top">
<p>版本说明</p>
</td>
<td valign="top">
<p>生成的文件</p>
</td>
<td valign="top">
<p>编译说明</p>
</td>
<td valign="top">
<p>使用说明</p>
</td>
</tr>
<tr>
<td valign="top">
<p>使用动态运行史库的动态库版本</p>
</td>
<td valign="top">
<p>stlport.5.2.dll&nbsp; stlport.5.2.lib</p>
<p>stlportd.5.2.dll stlportd.5.2.lib</p>
<p>stlportstld.5.2.dll stlportstld.5.2.lib</p>
</td>
<td valign="top">
<p>默认会生成</p>
</td>
<td valign="top">
<p>stlportstld.5.2.lib是调试模式版本，使用宏_STLP_DEBUG控制</p>
</td>
</tr>
<tr>
<td valign="top">
<p>使用静态运行时库的静态库版本</p>
<p>&nbsp;</p>
</td>
<td valign="top">
<p>stlport_static.lib</p>
<p>stlportd_static.lib</p>
<p>stlportstld_static.lib</p>
</td>
<td valign="top">
<p>默认会生成</p>
</td>
<td valign="top">
<p>stlportstld_static.lib是调试版本，使用宏_STLP_DEBUG控制</p>
</td>
</tr>
<tr>
<td valign="top">
<p>使用静态运行时库的动态库版本</p>
</td>
<td valign="top">
<p>stlportstld_x.5.2.lib stlportstld_x.5.2.dll </p>
<p>stlportd_x.5.2.lib stlportd_x.5.2.dll</p>
<p>stlport_x.5.2.lib stlport_x.5.2.dll</p>
</td>
<td valign="top">
<p>要修改</p>
<p>stlport/stl/config/host.h</p>
<p>增加#define _STLP_USE_DYNAMIC_LIB </p>
<p>配置时要</p>
<p>configure.bat &nbsp;--with-static-rtl</p>
</td>
<td valign="top">
<p>要使用宏_STLP_USE_DYNAMIC_LIB</p>
<p>调试版本仍然需要宏_STLP_DEBUG<br>
</p>
</td>
</tr>
<tr>
<td valign="top">
<p>使用动态运行时库的静态库版本</p>
</td>
<td valign="top">
<p>stlportstld_statix.lib</p>
<p>stlportd_statix.lib</p>
<p>stlport_statix.lib</p>
</td>
<td valign="top">
<p>要修改</p>
<p>stlport/stl/config/host.h</p>
<p>增加#define _STLP_USE_STATIC_LIB </p>
<p>配置时要</p>
<p>configure.bat &nbsp;--with-dynamic-rtl</p>
</td>
<td valign="top">
<p>要使用宏_STLP_USE_STATIC_LIB</p>
<p>调试版本仍然需要_STLP_DEBUG<br>
</p>
</td>
</tr>
</tbody>
</table>
<br>
<p>&nbsp;</p>
<p>【注意】后来有一次copy代码，结果又导致代码不过，检查了半天，才发现导致问题的是拷贝进来的一段代码放入了一个宏_STLP_USE_BOOST_SUPPORT，故名思议，这个是要在STLport中间使用boost某些支持。在STLport的User_config.h中相关说明。</p>
<div>
<p>/*</p>
<p>&nbsp;* Toachieve many different optimizations within the template implementationsSTLport</p>
<p>&nbsp;* uses sometype traits technique. With this macro you can ask STLport to use the famous</p>
<p>&nbsp;* boosttype traits rather than the internal one. The advantages are more compiler</p>
<p>&nbsp;*integration and a better support. If you only define this macro once theSTLport has been</p>
<p>&nbsp;* built youjust have to add the boost install path within your include path. If you want</p>
<p>&nbsp;* to usethis feature at STLport built time you will have to define the</p>
<p>&nbsp;*STLP_BUILD_BOOST_PATH enrironment variable with the value of the boost librarypath.</p>
<p>&nbsp;*/</p>
</div>
<p>google后发现，这仍然是一个bug，如果要使用这个特性，要在Type_traits.h文件中增加一行代码。</p>
<div>
<p>#ifdef _STLP_USE_BOOST_SUPPORT</p>
<p>#&nbsp; include&lt;stl/boost_type_traits.h&gt;</p>
<p>#&nbsp; include&lt;boost/type_traits/add_reference.hpp&gt;</p>
<p>#&nbsp; include&lt;boost/type_traits/add_const.hpp&gt;</p>
<p>#&nbsp; include&lt;boost/type_traits/remove_const.hpp&gt;&nbsp;/*新添加此行*/</p>
<p>#endif /* _STLP_USE_BOOST_SUPPORT */</p>
</div>
<p>同时生成makefile的时候还要增加一个参数--use-boost配置boost的目录，或者增加如前面说明的环境变量。</p>
<div>
<p>configure msvc9 --with-static-rtl --with-dynamic-rtl--use-boost %boostDir%</p>
</div>
<p>我自己不想用这个特性，在我自己的代码删除这个宏了事。</p>
<p>&nbsp;</p>
如果你希望在你的代码里面优先使用STLport的代码，而不是微软的默认STL实现，你要调整一下设置，VC2010的目录设置发生了很大的调整。以前的版本设置路径都在菜单tools\options下VC&#43;&#43; Directory下面进行调整，方便快捷，VS2010做了一个很让人不爽的改动设计，你必须先打开一个工程，打开菜单view\propertyManager，选择工程，选工程下DEBUG|WIN32和RELEASE|WIN32下面的Microsoft.Cpp.Win32.user，注意这两层菜单都可以打开选项界面，但是一个是工程的，一个是全局的（一定要选择Microsoft.Cpp.Win32.user这层），我经常搞混，然后一头雾水。
<p><span style="font-size:18px"></span></p>
<p>&nbsp;</p>
<p><span style="font-size:18px"><img src="http://hi.csdn.net/attachment/201110/7/0_1317982801ZIyk.gif" alt=""></span></p>
<p>然后再进行目录调整，注意要去掉继承选项，然后将STLPort的目录要放到所有目录前面，让回将默认的一条条输入到其后面去（对于继承来的无法调整目录的先后顺序），比原来麻烦不少。据说这个改动是为了VS2010测试版时有人希望对不同的用户提供不同的Libaray管理，我靠他先人板板，程序员有几个人和他人共用PC的，而且还要编程目录不一致。</p>
<p>&nbsp;</p>
<p>BOOST的编译就更加痛苦一些了。首先我的4核机器上要编译几个小时才能编译完成。大家要有点耐心。</p>
<p>当然如果你的要求不高，你可以选择一个简单的方法，获取BOOST已经编译好的库，liangfeng推荐了一个网站给我，<a href="http://www.boostpro.com/">www.boostpro.com</a> 。上面会提供各种版本VS版本，各个版本号的BOOST库供你下载，而且都是全自动化的，非常方便。如下图：</p>
<br>
<p><span style="font-size:18px"><img src="http://hi.csdn.net/attachment/201110/7/0_13179828130zmf.gif" alt=""><br>
</span></p>
<p>可以看出，BOOSTPro提供了VC2003，VC2005，VC2008，VC2010的，多线程动态runtime library动态库版本，多线程动态runtime library静态库版本，多线程静态runtime library静态库版本（每个都10多M），单线程静态runtime library静态库版本。注意你要是全部下载的化，有好几个G的文件，下载的过程也要有点耐心。</p>
<p>当然全自动化的结果是由代价的，一是下载给你的库没有提供pdb文件，如果你想调试boost库的代码，发现问题，这招就不要用了。二是，他提供的下载源代码文件里面只有头文件，三是，如果你想用STLport&#43;BOOST（STLport作为底层库，而不是使用微软的实现）的方式，BOOSTPro网站没有提供这种库给你下载。四是，目前他没有64位的版本。</p>
<p>我因为想用STLPort替代现有的库实现，我也要选择自己进行编译。</p>
<p>要说明的是BOOST库目前的版本已经很容易编译了，而且会自动识别那些库可以编译，那些不能编译了。仍然选择Visual Studio Command Prompt(2010) 进入boost的根目录,</p>
<div>
<p>cd E:\HaveFun\Boost\boost.1.46.1</p>
<p>bootstrap.bat</p>
</div>
<p>bjam.exe就生产了。</p>
<p>Boost的build说明文档如裹脚布一样，又臭又长，如果你没有耐心直接看bjam的帮助，</p>
<div>
<p>bjam —-help</p>
</div>
<p>但倒霉的是这里面又没有说明如果要用STLPort怎么帮，这个只有看帮助文档。如果要用STLPort作为底层编译BOOST，详细见BOOST的说明，Chapter 33. Boost.Build V2 User Manual 中的Reference</p>
<div>
<p>STLport library</p>
<p>The STLport library is an alternativeimplementation of C&#43;&#43; runtime library. Boost.Build supports using that libraryon Windows platfrom. Linux is hampered by different naming of libraries in eachSTLport version and is not officially supported.</p>
<p>&nbsp;</p>
<p>Before using STLport, you need to configure it inuser-config.jam using the following syntax:</p>
<p>using stlport : [version] : header-path :[library-path] ;</p>
<p>Where version is the version of STLport, for example 5.1.4,headers is the location where STLport headers can be found, and libraries isthe location where STLport libraries can be found. The version should always beprovided, and the library path should be
 provided if you're using STLport'simplementation of iostreams. Note that STLport 5.* always uses its own iostreamimplementation, so the library path is required.</p>
<p>&nbsp;</p>
<p>When STLport is configured, you can build with STLport byrequesting stdlib=stlport on the command line.</p>
</div>
<p>翻译过来就是如果你想希望默认使用STLPort的库，你要编辑project-config.jam 增加一行</p>
<div>
<p>using msvc ; </p>
<p>using stlport : 5.2.1 : E:/HaveFun/STLport/STLport.5.2.1/stlport : E:/HaveFun/STLport/STLport.5.2.1/lib ;</p>
<p>&nbsp;</p>
</div>
<p>#注意路径用/，或者\\</p>
<p>说明一下编译参数和属性，</p>
<p>threading=single,multi 当然单线程版本你用的干嘛，不编译还可以节约一般的时间。</p>
<p>link=shared,static&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 生成的库是静态还是动态</p>
<p>runtime-link=shared,static 运行时库使用动态还是静态的。</p>
<p>stdlib=stlport&nbsp; 使用STLport</p>
<p>--build-type=commplete,minimal commplete标识所有的版本都编译，minimal只编译多线程的静态库版本。</p>
<p>--stagedir=./stage 指本地构建的存放库的目录，</p>
<p>--show-libraries 显示所有需要编译的库，其实不多，天知道为什么要了那么大的空间。</p>
<p>--with-&lt;lib&gt; 单独编译你想编译的库</p>
<p>--without-&lt;lib&gt; 编译所有的库，除了你制定不编译的以外。</p>
然后就可以开始编译了,注意路径名称
<div>
<p><a name="OLE_LINK2"></a><a name="OLE_LINK1">bjam</a> threading=multilink=shared,static stdlib=stlport&nbsp;--stagedir=./stage</p>
</div>
<p>上面这个命令编译的是运行时库为动态库的版本，然后就是漫长的等待……，等待……而如果全部编译(--build-type=commplete)，你至少可以用这个时间看完一部电影……</p>
<p>1.46版本生成的静态库在stage\lib下，动态库和相应的链接库在bin.v2下面。bin.v2下面，目录一层又一层，建议你全部搜索了拷贝出来，放在一个目录下（我一般喜欢把所有的库放到一个目录下面）。1.47版本好像全部放到stage目录下了，省事不少。</p>
<p>Boost是根据每个库生成对应的.lib文件的，实在不明白为什么不合并成一个库文件。</p>
<p>另外，BOOST也采用了帮助你自动链接的技术，可以省却你一些麻烦。BOOST库的命名比STLPort还要好&#30524;花缭乱，后缀含义简直是乱花渐欲迷人&#30524;。比如libboost_serialization-vc100-mt-sgdp-1_49.lib。</p>
<p>前面是库名称，vc100表示编译器，最后面是版本号。下面来解释一下中间那些字符的含义:</p>
<table border="1" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td valign="top">
<p>版本号中标记的含义</p>
</td>
<td valign="top">
<p>表示的含义</p>
</td>
</tr>
<tr>
<td valign="top">
<p>lib前缀</p>
</td>
<td valign="top">
<p>静态库版本（动态库版本没有lib的前缀）</p>
</td>
</tr>
<tr>
<td valign="top">
<p>vc100</p>
</td>
<td valign="top">
<p>编译器版本好，vc100标识vc10.0</p>
</td>
</tr>
<tr>
<td valign="top">
<p>s</p>
</td>
<td valign="top">
<p>运行时库试用静态库版本（运行时库试用动态库版本没有特殊标记）</p>
</td>
</tr>
<tr>
<td valign="top">
<p>gd</p>
</td>
<td valign="top">
<p>debug调试版本（Release版本没有特殊标记）</p>
</td>
</tr>
<tr>
<td valign="top">
<p>p</p>
</td>
<td valign="top">
<p>使用STLport作为STL实现的版本，</p>
</td>
</tr>
<tr>
<td valign="top">
<p>mt</p>
</td>
<td valign="top">
<p>多线程版本，（单线程版没有特殊标记）</p>
</td>
</tr>
</tbody>
</table>
注意BOOST DEBUG版本使用的是带调试模式的STLPort，编译你的代码必须定义_STLP_DEBUG=1，这时候编译器回去链接调试模式的STLport版本。
<p><span style="font-size:18px"></span></p>
<p><span style="font-size:18px"></span></p>
<p>最近打算认真学习一下Boost库，准备在日常工作中，用Boost替换自己常用的ACE库作为跨平台实现。大家耐心等待后续的文章。</p>
<p>&nbsp;</p>
<p>【本文作者是fullsail(雁渡寒潭)，本着自由的精神，你可以在无盈利的情况完整转载此文档，转载时请附上BLOG链接:http://blog.csdn.net/fullsail，否则每字一元不讲价。对Baidu文库加价一倍】</p>
<p><span style="font-size:18px"></span></p>
<p>&nbsp;</p>
<br>

</div>




<!-- Baidu Button BEGIN -->

<div class="bdsharebuttonbox" style="float: right;">
<a href="#" class="bds_more" data-cmd="more" style="background-position:0 0 !important; background-image: url(http://bdimg.share.baidu.com/static/api/img/share/icons_0_16.png?v=d754dcc0.png) !important"></a>
<a href="#" class="bds_qzone" data-cmd="qzone" title="分享到QQ空间"  style="background-position:0 -52px !important"></a>
<a href="#" class="bds_tsina" data-cmd="tsina" title="分享到新浪微博"style="background-position:0 -104px !important"></a>
<a href="#" class="bds_tqq" data-cmd="tqq" title="分享到腾讯微博"style="background-position:0 -260px !important"></a>
<a href="#" class="bds_renren" data-cmd="renren" title="分享到人人网"style="background-position:0 -208px !important"></a>
<a href="#" class="bds_weixin" data-cmd="weixin" title="分享到微信"style="background-position:0 -1612px !important" ></a>
</div>
<script>window._bd_share_config = { "common": { "bdSnsKey": {}, "bdText": "", "bdMini": "1", "bdMiniList": false, "bdPic": "", "bdStyle": "0", "bdSize": "16" }, "share": {} }; with (document) 0[(getElementsByTagName('head')[0] || body).appendChild(createElement('script')).src = 'http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion=' + ~(-new Date() / 36e5)];</script>
<!-- Baidu Button END -->

<!--192.168.100.33-->
<ul class="article_next_prev">
            <li class="prev_article"><span  onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_shangyipian']);location.href='/fullsail/article/details/6328702';">上一篇</span><a href="/fullsail/article/details/6328702" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_shangyipian'])">多次HASH算法解决冲突的效果测试</a></li>
            <li class="next_article"><span onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_xiayipian']);location.href='/fullsail/article/details/6849167';">下一篇</span><a href="/fullsail/article/details/6849167" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_xiayipian'])">CSDN 的blog改版后更加难用了。。。。。。</a></li>
</ul>

<!-- Baidu Button BEGIN -->
<script type="text/javascript" id="bdshare_js" data="type=tools&amp;uid=1536434" ></script>
<script type="text/javascript" id="bdshell_js"></script>
<script type="text/javascript">
    document.getElementById("bdshell_js").src = "http://bdimg.share.baidu.com/static/js/shell_v2.js?cdnversion=" + Math.ceil(new Date()/3600000)
</script>
<!-- Baidu Button END -->


        <div id="digg" ArticleId="6848945">
            <dl id="btnDigg" class="digg digg_disable">
                <dt onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_ding'])">顶</dt>
                <dd>2</dd>
            </dl>
            <dl id="btnBury" class="digg digg_disable">
                <dt onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_cai'])">踩</dt>
                <dd>0</dd>
            </dl>
        </div>
</div>
      <dl class="blog-associat-tag">
        <dt>主题推荐</dt>
        <dd>
                <a href="http://www.csdn.net/tag/vc++" target="_blank" class="blog-tage-red" >vc++</a> 
                <a href="http://www.csdn.net/tag/2010" target="_blank" class="blog-tage-red" >2010</a> 
                <a href="http://www.csdn.net/tag/boost" target="_blank" class="blog-tage-red" >boost</a> 
                <a href="http://www.csdn.net/tag/交叉编译" target="_blank" class="blog-tage-red" >交叉编译</a> 
                <a href="http://www.csdn.net/tag/多线程" target="_blank" class="blog-tage-red" >多线程</a> 
        </dd>
    </dl> 


<dl class="blog-ass-articl tracking-ad"  data-mod="popu_36" id="res-relatived"> 
     <dt><span>猜你在找</span></dt>    
</dl>

<script type="text/javascript">
    var searchtitletags = 'VC++2010下编译STLport,Boost' + ',' + 'vc++,2010,boost,交叉编译,多线程';
    searchService({
        index: 'blog',
        query: searchtitletags,
        from: 10,
        size: 10,
        appendTo: '#res-relatived',
        url: 'recommend',
        his: 2,
        client: "blog_cf_enhance",
        tmpl: '<dd style="background:url(http://static.blog.csdn.net/skin/default/images/blog-dot-red3.gif) no-repeat 0 10px;"><a href="#{ url }" title="#{ title }" strategy="#{ strategy }">#{ title }</a></dd>'
    });

 </script>   


    <div id="ad_cen">
   
          <script type="text/javascript">
              new Ad(4, 'ad_cen');
          </script>
    </div>
<div class="comment_class">
    <div id="comment_title" class="panel_head">
        <span class="see_comment">查看评论</span><a name="comments"></a></div>
    <div id="comment_list">
    </div>
    <div id="comment_bar">
    </div>
    <div id="comment_form">
    </div>

    <div class="announce">
        * 以上用户言论只代表其个人观点，不代表CSDN网站的观点或立场<a name="reply"></a><a name="quote"></a></div>
</div>

<script type="text/javascript">
    var fileName = '6848945';
    var commentscount = 1;
    var islock = false
</script>
<script type="text/javascript" src="http://static.blog.csdn.net/scripts/comment.js"></script>
    <div id="ad_bot">
    </div>
    <script type="text/javascript">
    new Ad(5, 'ad_bot');
    </script>
<div id="report_dialog">
</div>

<div id="d-top"  style="bottom:60px;">
        <a id="quick-reply" class="btn btn-top q-reply" title="快速回复" style="display:none;">
            <img src="http://static.blog.csdn.net/images/blog-icon-reply.png" alt="快速回复">
        </a>    

    <a id="d-top-a" class="btn btn-top backtop"  style="display: none;" title="返回顶部" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_huidaodingbu'])" style="">         
         <img src="http://static.blog.csdn.net/images/top.png" alt="TOP">
    </a>
</div>
<script type="text/javascript">
    $(function ()
    {
        $("#ad_frm_0").height("90px");
        
        setTimeout(function(){
            $("#ad_frm_2").height("200px");
        },1000);
        
        /*
        if($("#comment_content").length>0)
        {
            $("#quick-reply").show();

            $("#quick-reply").click(function(){
                setEditorFocus();
            });
        }       
     
        var d_top = $('#d-top-a');

        document.onscroll = function ()
        {
            var scrTop = (document.body.scrollTop || document.documentElement.scrollTop);
            if (scrTop > 500)
            {
                d_top.show();
            } else
            {
                d_top.hide();
            }
        }
        $('#d-top-a').click(function ()
        {
            scrollTo(0, 0);
            this.blur();
            return false;
        });
        */
    });
  
</script>
<style type="text/css">
    .tag_list
    {
        background: none repeat scroll 0 0 #FFFFFF;
        border: 1px solid #D7CBC1;
        color: #000000;
        font-size: 12px;
        line-height: 20px;
        list-style: none outside none;
        margin: 10px 2% 0 1%;
        padding: 1px;
    }
    .tag_list h5
    {
        background: none repeat scroll 0 0 #E0DBD3;
        color: #47381C;
        font-size: 12px;
        height: 24px;
        line-height: 24px;
        padding: 0 5px;
        margin: 0;
    }
    .tag_list h5 a
    {
        color: #47381C;
    }
    .classify
    {
        margin: 10px 0;
        padding: 4px 12px 8px;
    }
    .classify a
    {
        margin-right: 20px;
        white-space: nowrap;
    }
</style>
<div class="tag_list">
    <h5>
        <a href="http://www.csdn.net/tag/" target="_blank">核心技术类目</a></h5>
    <div class="classify">
<a title="全部主题" href="http://www.csdn.net/tag" target="_blank" onclick="LogClickCount(this,336);">全部主题</a>
<a title="Hadoop" href="http://g.csdn.net/5272865" target="_blank" onclick="LogClickCount(this,336);">Hadoop</a>
<a title="AWS" href="http://g.csdn.net/5272866" target="_blank" onclick="LogClickCount(this,336);">AWS</a>
<a title="移动游戏" href="http://g.csdn.net/5272870" target="_blank" onclick="LogClickCount(this,336);">移动游戏</a>
<a title="Java" href="http://g.csdn.net/5272871" target="_blank" onclick="LogClickCount(this,336);">Java</a>
<a title="Android" href="http://g.csdn.net/5272872" target="_blank" onclick="LogClickCount(this,336);">Android</a>
<a title="iOS" href="http://g.csdn.net/5272873" target="_blank" onclick="LogClickCount(this,336);">iOS</a>
<a title="Swift" href="http://g.csdn.net/5272868" target="_blank" onclick="LogClickCount(this,336);">Swift</a>
<a title="智能硬件" href="http://g.csdn.net/5272869" target="_blank" onclick="LogClickCount(this,336);">智能硬件</a>
<a title="Docker" href="http://g.csdn.net/5272867" target="_blank" onclick="LogClickCount(this,336);">Docker</a>
<a title="OpenStack" href="http://g.csdn.net/5272925" target="_blank" onclick="LogClickCount(this,336);">OpenStack</a>
<a title="VPN" href="http://www.csdn.net/tag/vpn" target="_blank" onclick="LogClickCount(this,336);">VPN</a>
<a title="Spark" href="http://g.csdn.net/5272924" target="_blank" onclick="LogClickCount(this,336);">Spark</a>
<a title="ERP" href="http://www.csdn.net/tag/erp" target="_blank" onclick="LogClickCount(this,336);">ERP</a>
<a title="IE10" href="http://www.csdn.net/tag/ie10" target="_blank" onclick="LogClickCount(this,336);">IE10</a>
<a title="Eclipse" href="http://www.csdn.net/tag/eclipse" target="_blank" onclick="LogClickCount(this,336);">Eclipse</a>
<a title="CRM" href="http://www.csdn.net/tag/crm" target="_blank" onclick="LogClickCount(this,336);">CRM</a>
<a title="JavaScript" href="http://www.csdn.net/tag/javascript" target="_blank" onclick="LogClickCount(this,336);">JavaScript</a>
<a title="数据库" href="http://www.csdn.net/tag/数据库" target="_blank" onclick="LogClickCount(this,336);">数据库</a>
<a title="Ubuntu" href="http://www.csdn.net/tag/ubuntu" target="_blank" onclick="LogClickCount(this,336);">Ubuntu</a>
<a title="NFC" href="http://www.csdn.net/tag/nfc" target="_blank" onclick="LogClickCount(this,336);">NFC</a>
<a title="WAP" href="http://www.csdn.net/tag/wap" target="_blank" onclick="LogClickCount(this,336);">WAP</a>
<a title="jQuery" href="http://www.csdn.net/tag/jquery" target="_blank" onclick="LogClickCount(this,336);">jQuery</a>
<a title="BI" href="http://www.csdn.net/tag/bi" target="_blank" onclick="LogClickCount(this,336);">BI</a>
<a title="HTML5" href="http://www.csdn.net/tag/html5" target="_blank" onclick="LogClickCount(this,336);">HTML5</a>
<a title="Spring" href="http://www.csdn.net/tag/spring" target="_blank" onclick="LogClickCount(this,336);">Spring</a>
<a title="Apache" href="http://www.csdn.net/tag/apache" target="_blank" onclick="LogClickCount(this,336);">Apache</a>
<a title=".NET" href="http://www.csdn.net/tag/.net" target="_blank" onclick="LogClickCount(this,336);">.NET</a>
<a title="API" href="http://www.csdn.net/tag/api" target="_blank" onclick="LogClickCount(this,336);">API</a>
<a title="HTML" href="http://www.csdn.net/tag/html" target="_blank" onclick="LogClickCount(this,336);">HTML</a>
<a title="SDK" href="http://www.csdn.net/tag/sdk" target="_blank" onclick="LogClickCount(this,336);">SDK</a>
<a title="IIS" href="http://www.csdn.net/tag/iis" target="_blank" onclick="LogClickCount(this,336);">IIS</a>
<a title="Fedora" href="http://www.csdn.net/tag/fedora" target="_blank" onclick="LogClickCount(this,336);">Fedora</a>
<a title="XML" href="http://www.csdn.net/tag/xml" target="_blank" onclick="LogClickCount(this,336);">XML</a>
<a title="LBS" href="http://www.csdn.net/tag/lbs" target="_blank" onclick="LogClickCount(this,336);">LBS</a>
<a title="Unity" href="http://www.csdn.net/tag/unity" target="_blank" onclick="LogClickCount(this,336);">Unity</a>
<a title="Splashtop" href="http://www.csdn.net/tag/splashtop" target="_blank" onclick="LogClickCount(this,336);">Splashtop</a>
<a title="UML" href="http://www.csdn.net/tag/uml" target="_blank" onclick="LogClickCount(this,336);">UML</a>
<a title="components" href="http://www.csdn.net/tag/components" target="_blank" onclick="LogClickCount(this,336);">components</a>
<a title="Windows Mobile" href="http://www.csdn.net/tag/windowsmobile" target="_blank" onclick="LogClickCount(this,336);">Windows Mobile</a>
<a title="Rails" href="http://www.csdn.net/tag/rails" target="_blank" onclick="LogClickCount(this,336);">Rails</a>
<a title="QEMU" href="http://www.csdn.net/tag/qemu" target="_blank" onclick="LogClickCount(this,336);">QEMU</a>
<a title="KDE" href="http://www.csdn.net/tag/kde" target="_blank" onclick="LogClickCount(this,336);">KDE</a>
<a title="Cassandra" href="http://www.csdn.net/tag/cassandra" target="_blank" onclick="LogClickCount(this,336);">Cassandra</a>
<a title="CloudStack" href="http://www.csdn.net/tag/cloudstack" target="_blank" onclick="LogClickCount(this,336);">CloudStack</a>
<a title="FTC" href="http://www.csdn.net/tag/ftc" target="_blank" onclick="LogClickCount(this,336);">FTC</a>
<a title="coremail" href="http://www.csdn.net/tag/coremail" target="_blank" onclick="LogClickCount(this,336);">coremail</a>
<a title="OPhone " href="http://www.csdn.net/tag/ophone " target="_blank" onclick="LogClickCount(this,336);">OPhone </a>
<a title="CouchBase" href="http://www.csdn.net/tag/couchbase" target="_blank" onclick="LogClickCount(this,336);">CouchBase</a>
<a title="云计算" href="http://www.csdn.net/tag/云计算" target="_blank" onclick="LogClickCount(this,336);">云计算</a>
<a title="iOS6" href="http://www.csdn.net/tag/iOS6" target="_blank" onclick="LogClickCount(this,336);">iOS6</a>
<a title="Rackspace " href="http://www.csdn.net/tag/rackspace " target="_blank" onclick="LogClickCount(this,336);">Rackspace </a>
<a title="Web App" href="http://www.csdn.net/tag/webapp" target="_blank" onclick="LogClickCount(this,336);">Web App</a>
<a title="SpringSide" href="http://www.csdn.net/tag/springside" target="_blank" onclick="LogClickCount(this,336);">SpringSide</a>
<a title="Maemo" href="http://www.csdn.net/tag/maemo" target="_blank" onclick="LogClickCount(this,336);">Maemo</a>
<a title="Compuware" href="http://www.csdn.net/tag/compuware" target="_blank" onclick="LogClickCount(this,336);">Compuware</a>
<a title="大数据" href="http://www.csdn.net/tag/大数据" target="_blank" onclick="LogClickCount(this,336);">大数据</a>
<a title="aptech" href="http://www.csdn.net/tag/aptech" target="_blank" onclick="LogClickCount(this,336);">aptech</a>
<a title="Perl" href="http://www.csdn.net/tag/perl" target="_blank" onclick="LogClickCount(this,336);">Perl</a>
<a title="Tornado" href="http://www.csdn.net/tag/tornado" target="_blank" onclick="LogClickCount(this,336);">Tornado</a>
<a title="Ruby" href="http://www.csdn.net/tag/ruby" target="_blank" onclick="LogClickCount(this,336);">Ruby</a>
<a title="Hibernate" href="http://www.csdn.net/hibernate" target="_blank" onclick="LogClickCount(this,336);">Hibernate</a>
<a title="ThinkPHP" href="http://www.csdn.net/tag/thinkphp" target="_blank" onclick="LogClickCount(this,336);">ThinkPHP</a>
<a title="HBase" href="http://www.csdn.net/tag/hbase" target="_blank" onclick="LogClickCount(this,336);">HBase</a>
<a title="Pure" href="http://www.csdn.net/tag/pure" target="_blank" onclick="LogClickCount(this,336);">Pure</a>
<a title="Solr" href="http://www.csdn.net/tag/solr" target="_blank" onclick="LogClickCount(this,336);">Solr</a>
<a title="Angular" href="http://www.csdn.net/tag/angular" target="_blank" onclick="LogClickCount(this,336);">Angular</a>
<a title="Cloud Foundry" href="http://www.csdn.net/tag/cloudfoundry" target="_blank" onclick="LogClickCount(this,336);">Cloud Foundry</a>
<a title="Redis" href="http://www.csdn.net/tag/redis" target="_blank" onclick="LogClickCount(this,336);">Redis</a>
<a title="Scala" href="http://www.csdn.net/tag/scala" target="_blank" onclick="LogClickCount(this,336);">Scala</a>
<a title="Django" href="http://www.csdn.net/tag/django" target="_blank" onclick="LogClickCount(this,336);">Django</a>
<a title="Bootstrap" href="http://www.csdn.net/tag/bootstrap" target="_blank" onclick="LogClickCount(this,336);">Bootstrap</a>
    </div>
</div>

<div id="pop_win" style="display:none ;position: absolute; z-index: 10000; border: 1px solid rgb(220, 220, 220); top: 222.5px; left: 630px; opacity: 1; background: none 0px 0px repeat scroll rgb(255, 255, 255);">
    
</div>
<div id="popup_mask"></div>
<style>
    #popup_mask
    {
        position: absolute;
        width: 100%;
        height: 100%;
        background: #000;
        z-index: 9999;
        left: 0px;
        top: 0px;
        opacity: 0.3;
        filter: alpha(opacity=30);
        display: none;
    }

</style>




<script type="text/javascript">
    $(function(){
        setTimeout(function(){
            $(".comment_body:contains('回复')").each(function(index,item){
                var u=$(this).text().split('：')[0].toString().replace("回复","")
                var thisComment=$(this);
                if(u)
                {
                    $.getJSON("https://passport.csdn.net/get/nick?callback=?", {users: u}, function(a) {
                        if(a!=null&&a.data!=null&&a.data.length>0)
                        {
                            nick=a.data[0].n; 
                            if(u!=nick)
                            {
                                thisComment.text(thisComment.text().replace(u,nick));  
                            }
                        }       
                    });  
                }
            });
        },200);  
        
        setTimeout(function(){
            $("a img[src='http://js.tongji.linezing.com/stats.gif']").parent().css({"position":"absolute","left":"50%"});
        },300);
    });

    function loginbox(){
        var $logpop=$("#pop_win");
        $logpop.html('<iframe src="https://passport.csdn.net/account/loginbox?service=http://static.blog.csdn.net/callback.htm" frameborder="0" height="600" width="400" scrolling="no"></iframe>');

        $('#popup_mask').css({
            opacity: 0.5,
            width: $( document ).width() + 'px',
            height:  $( document ).height() + 'px'
        });
        $('#popup_mask').css("display","block");
 
        $logpop.css( {
            top: ($( window ).height() - $logpop.height())/ 2  + $( window 
       ).scrollTop() + 'px',
            left:($( window ).width() - $logpop.width())/ 2
        } );
 
        setTimeout( function () {
            $logpop.show();
            $logpop.css( {
                opacity: 1
            } );
        }, 200 );
 
        $('#popup_mask').unbind("click");
        $('#popup_mask').bind("click", function(){
            $('#popup_mask').hide();
            var $clopop = $("#pop_win");
            $("#common_ask_div_sc").css("display","none");
            $clopop.css( {
                opacity: 0
            } );
            setTimeout( function () {
                $clopop.hide();
            }, 350 );
            return false;
        });
    }    

</script>
                        <div class="clear">
                        </div>
                    </div>                   
                
            </div>
            <div id="side">
    <div class="side">
<div id="panel_Profile" class="panel">
<ul class="panel_head"><span>个人资料</span></ul>
<ul class="panel_body profile">
<div id="blog_userface">
    <a href="http://my.csdn.net/fullsail" target="_blank">
    <img src="http://avatar.csdn.net/1/5/E/1_fullsail.jpg" title="访问我的空间" style="max-width:90%"/>
    </a>
    <br />
    <span><a href="http://my.csdn.net/fullsail" class="user_name" target="_blank">fullsail</a></span>
</div>
<div class="interact">
<a href="javascript:void(0);" class="attent" id="span_add_follow" title="[加关注]" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_guanzhu'])"></a>

 <a href="javascript:void(0);" class="letter"  title="[发私信]" onclick="window.open('http://msg.csdn.net/letters/model?receiver=fullsail','_blank','height=350,width=700');_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_sixin'])"></a>  
</div>
<div id="blog_medal">
                <div id="bms_box">
               </div>
</div>
<ul id="blog_rank">
    <li>访问：<span>225030次</span></li>
    <li>积分：<span>3127</span> </li>    
    <li >等级： <span style="position:relative;display:inline-block;z-index:1" >
            <img src="http://csdnimg.cn/jifen/images/xunzhang/jianzhang/blog5.png" alt="" style="vertical-align: middle;" id="leveImg">
            <div id="smallTittle" style=" position: absolute;  left: -24px;  top: 25px;  text-align: center;  width: 101px;  height: 32px;  background-color: #fff;  line-height: 32px;  border: 2px #DDDDDD solid;  box-shadow: 0px 2px 2px rgba (0,0,0,0.1);  display: none;   z-index: 999;">
            <div style="left: 42%;  top: -8px;  position: absolute;  width: 0;  height: 0;  border-left: 10px solid transparent;  border-right: 10px solid transparent;  border-bottom: 8px solid #EAEAEA;"></div>
            积分：3127 </div>
        </span>  </li>
    <li>排名：<span>第3883名</span></li>
</ul>
<ul id="blog_statistics">
    <li>原创：<span>77篇</span></li>
    <li>转载：<span>3篇</span></li>
    <li>译文：<span>0篇</span></li>
    <li>评论：<span>231条</span></li>
</ul>
</ul>
</div>


<div class="panel" id="panel_Search">
    <ul class="panel_head"><span>文章搜索</span></ul>
    <ul class="panel_body">
        <form id="frmSearch" action="http://so.csdn.net/search" class="form_search" target="_blank">
        <span><input id="inputSearch" type="text" class="blogsearch" title="请输入关键字" /></span>
        <input id="btnSubmit" type="button" value="搜索" title="search in blog" />
        <input type="hidden" name="q" id="inputQ" />
        <input type="hidden" name="t" value="blog" />
        <a id="btnSearchBlog" target="_blank"></a>
        </form>
    </ul>
</div>

<script type="text/javascript">
    $(function () {
        $("#btnSubmit").click(function () {           
            search();
        });

        $("#frmSearch").submit(function () {
            search();
            return false;
        });

        function search()
        {
            var url = "http://so.csdn.net/so/search/s.do?q=" + encodeURIComponent($("#inputSearch").val()) + "&u=" + username + "&t=blog";
            window.location.href = url;
        }   
    });
</script>
<div id="panel_Category" class="panel">
<ul class="panel_head"><span>文章分类</span></ul>
<ul class="panel_body">
             <li>
                <a href="http://blog.csdn.net/fullsail/article/category/459787" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">ACE的陷阱</a><span>(24)</span>
            </li>
             <li>
                <a href="http://blog.csdn.net/fullsail/article/category/426163" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">C++是促进脑死亡的最佳方式</a><span>(28)</span>
            </li>
             <li>
                <a href="http://blog.csdn.net/fullsail/article/category/474877" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">MySQL Benchmark</a><span>(10)</span>
            </li>
             <li>
                <a href="http://blog.csdn.net/fullsail/article/category/426164" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">程序人生</a><span>(10)</span>
            </li>
             <li>
                <a href="http://blog.csdn.net/fullsail/article/category/577336" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">网络通讯(TCP/UDP)</a><span>(2)</span>
            </li>
             <li>
                <a href="http://blog.csdn.net/fullsail/article/category/633940" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">负责任软评</a><span>(2)</span>
            </li>
             <li>
                <a href="http://blog.csdn.net/fullsail/article/category/1250395" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">跨平台编程(Windows/Linux)</a><span>(3)</span>
            </li>
             <li>
                <a href="http://blog.csdn.net/fullsail/article/category/1312729" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">被大蟒追逐的鼹鼠</a><span>(2)</span>
            </li>
             <li>
                <a href="http://blog.csdn.net/fullsail/article/category/1322188" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">设计模式</a><span>(2)</span>
            </li>
             <li>
                <a href="http://blog.csdn.net/fullsail/article/category/1407881" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">信息安全</a><span>(1)</span>
            </li>
</ul>
</div><div id="hotarticls" class="panel">
<ul class="panel_head">
    <span>       
阅读排行    </span>
</ul>

<ul class="panel_body itemlist">
<li>
<a href="/fullsail/article/details/4067416" title="C++读写EXCEL文件方式比较">C++读写EXCEL文件方式比较</a><span>(24848)</span>
</li>
<li>
<a href="/fullsail/article/details/2915685" title="ACE的陷阱">ACE的陷阱</a><span>(11155)</span>
</li>
<li>
<a href="/fullsail/article/details/4424324" title="慎用TCP的选项SO_LINGER">慎用TCP的选项SO_LINGER</a><span>(9773)</span>
</li>
<li>
<a href="/fullsail/article/details/3861098" title="比较3个购书网站,china-pub,dangdang,joyo(amazon)">比较3个购书网站,china-pub,dangdang,joyo(amazon)</a><span>(8626)</span>
</li>
<li>
<a href="/fullsail/article/details/4230312" title="慎用Visual Studio C++默认的hash_map">慎用Visual Studio C++默认的hash_map</a><span>(7726)</span>
</li>
<li>
<a href="/fullsail/article/details/2345225" title="利用小技巧用于跟踪函数的进出过程">利用小技巧用于跟踪函数的进出过程</a><span>(7703)</span>
</li>
<li>
<a href="/fullsail/article/details/8449448" title="C++使用OLE高速读写EXCEL的源码">C++使用OLE高速读写EXCEL的源码</a><span>(6796)</span>
</li>
<li>
<a href="/fullsail/article/details/5986317" title="实用主义和过度设计？">实用主义和过度设计？</a><span>(5825)</span>
</li>
<li>
<a href="/fullsail/article/details/6848945" title="VC++2010下编译STLport,Boost">VC++2010下编译STLport,Boost</a><span>(5581)</span>
</li>
<li>
<a href="/fullsail/article/details/5332917" title="环形缓冲区，魔戒lordrings，boost的circular_buffer">环形缓冲区，魔戒lordrings，boost的circular_buffer</a><span>(4956)</span>
</li>
</ul>
</div>
<div id="hotarticls2" class="panel">
<ul class="panel_head"><span>评论排行</span></ul>
<ul class="panel_body itemlist">
<li>
<a href="/fullsail/article/details/5479310" title="当东楼撞上西门">当东楼撞上西门</a><span>(24)</span>
</li>
<li>
<a href="/fullsail/article/details/4230312" title="慎用Visual Studio C++默认的hash_map">慎用Visual Studio C++默认的hash_map</a><span>(19)</span>
</li>
<li>
<a href="/fullsail/article/details/2915685" title="ACE的陷阱">ACE的陷阱</a><span>(19)</span>
</li>
<li>
<a href="/fullsail/article/details/6328702" title="多次HASH算法解决冲突的效果测试">多次HASH算法解决冲突的效果测试</a><span>(19)</span>
</li>
<li>
<a href="/fullsail/article/details/8449448" title="C++使用OLE高速读写EXCEL的源码">C++使用OLE高速读写EXCEL的源码</a><span>(14)</span>
</li>
<li>
<a href="/fullsail/article/details/5045355" title="对Visual Studio C++ hash_map严谨一点的测试">对Visual Studio C++ hash_map严谨一点的测试</a><span>(13)</span>
</li>
<li>
<a href="/fullsail/article/details/5986317" title="实用主义和过度设计？">实用主义和过度设计？</a><span>(8)</span>
</li>
<li>
<a href="/fullsail/article/details/4438133" title="发现自己认识错误的C++问题还很多">发现自己认识错误的C++问题还很多</a><span>(8)</span>
</li>
<li>
<a href="/fullsail/article/details/4067416" title="C++读写EXCEL文件方式比较">C++读写EXCEL文件方式比较</a><span>(8)</span>
</li>
<li>
<a href="/fullsail/article/details/3861098" title="比较3个购书网站,china-pub,dangdang,joyo(amazon)">比较3个购书网站,china-pub,dangdang,joyo(amazon)</a><span>(8)</span>
</li>
</ul>
</div>
<div id="homepageArticles" class="panel tracking-ad" data-mod="popu_4">
<ul class="panel_head"><span>推荐文章</span></ul>
<ul class="panel_body" id="ad_commend"></ul>
</div>
<script type="text/javascript">
 new Ad(12, 'ad_commend');
</script><div id="newcomments" class="panel">
<ul class="panel_head"><span>最新评论</span></ul>
<ul class="panel_body itemlist">
    <li>
   
         <a href="/fullsail/article/details/8449448#comments">C++使用OLE高速读写EXCEL的源码</a>
    <p style="margin:0px;"><a href="/luoridegediao3" class="user_name">luoridegediao3</a>:
能分享头文件吗？qq：595923724
    </p>
    </li>
    <li>
   
         <a href="/fullsail/article/details/3737123#comments">STMT的测试</a>
    <p style="margin:0px;"><a href="/mengxingxia" class="user_name">mengxingxia</a>:
C++是促进脑死亡的最佳方式
    </p>
    </li>
    <li>
   
         <a href="/fullsail/article/details/3737123#comments">C++使用OLE高速读写EXCEL的源码</a>
    <p style="margin:0px;"><a href="/paomomeirenyu" class="user_name">paomomeirenyu</a>:
头文件能不能分享一下，谢谢！邮箱312503874@qq.com
    </p>
    </li>
    <li>
   
         <a href="/fullsail/article/details/8607567#comments">SHA1和MD5算法详解和源码</a>
    <p style="margin:0px;"><a href="/cgdxxx" class="user_name">cgdxxx</a>:
很久没看到这样认真的文章了，为博主叫好！中国码农都以这种态度做事情的话，就世界第一了
    </p>
    </li>
    <li>
   
         <a href="/fullsail/article/details/8607567#comments">C++使用OLE高速读写EXCEL的源码</a>
    <p style="margin:0px;"><a href="/fullsail" class="user_name">fullsail</a>:
@zhangyacheng_1:OLE的特点决定了。其实背后是启动了一个EXCEL的、
    </p>
    </li>
    <li>
   
         <a href="/fullsail/article/details/8869767#comments">从密码学角度看TX常用的TEA加密算法</a>
    <p style="margin:0px;"><a href="/fullsail" class="user_name">fullsail</a>:
@crazyhuman: 利益相关，不能附带源码，见谅。
    </p>
    </li>
    <li>
   
         <a href="/fullsail/article/details/8869767#comments">C++使用OLE高速读写EXCEL的源码</a>
    <p style="margin:0px;"><a href="/zhangyacheng_1" class="user_name">zhangyacheng_1</a>:
这个excel操作的类，是不是使用的时候 机器上不能够有打开的excel 啊 ？是不是这个类所在的程...
    </p>
    </li>
    <li>
   
         <a href="/fullsail/article/details/8869767#comments">C++使用OLE高速读写EXCEL的源码</a>
    <p style="margin:0px;"><a href="/wwx8688" class="user_name">wwx8688</a>:
头文件能不能分享一下，谢谢！邮箱122213089@qq.com
    </p>
    </li>
    <li>
   
         <a href="/fullsail/article/details/8869767#comments">SHA1和MD5算法详解和源码</a>
    <p style="margin:0px;"><a href="/libocdf" class="user_name">libocdf</a>:
顶顶顶，最好的MD5教程
    </p>
    </li>
    <li>
   
         <a href="/fullsail/article/details/6328702#comments">多次HASH算法解决冲突的效果测试</a>
    <p style="margin:0px;"><a href="/Aquester" class="user_name">Aquester</a>:
能插入的的概率和取的质数有关，也和级数有关，如果可以容忍部分插入失败，确实非常棒，由于是数组，导入导...
    </p>
    </li>
</ul>
</div>
    </div>
    <div class="clear">
    </div>
</div>

            <div class="clear">
            </div>
        </div>
        

<script type="text/javascript" src="http://csdnimg.cn/rabbit/cnick/cnick.js"></script>
<script type="text/javascript" src="http://static.blog.csdn.net/scripts/newblog.min.js"></script>


<script type="text/javascript" src="http://medal.blog.csdn.net/showblogmedal.ashx?blogid=1700"></script>
<script type="text/javascript" src="http://static.blog.csdn.net/scripts/JavaScript1.js"></script>

    <script type="text/javascript" src="http://passport.csdn.net/content/loginbox/login.js"></script>
<script type="text/javascript">document.write("<img src=http://counter.csdn.net/pv.aspx?id=24 border=0 width=0 height=0>");</script>
<script type="text/javascript" src="http://www.csdn.net/ui/scripts/Csdn/counter.js"></script>
<script type="text/javascript" src="http://ad.csdn.net/scripts/ad-blog.js"></script>
<script type="text/javascript" src="http://zz.csdn.net/js/count.js"></script>
<script type="text/javascript">
    $(function () {
        function __get_code_toolbar(snippet_id) {
            return $("<a href='https://code.csdn.net/snippets/"
                    + snippet_id
                    + "' target='_blank' title='在CODE上查看代码片' style='text-indent:0;'><img src='https://code.csdn.net/assets/CODE_ico.png' width=12 height=12 alt='在CODE上查看代码片' style='position:relative;top:1px;left:2px;'/></a>"
                    + "<a href='https://code.csdn.net/snippets/"
                    + snippet_id
                    + "/fork' target='_blank' title='派生到我的代码片'  style='text-indent:0;'><img src='https://code.csdn.net/assets/ico_fork.svg' width=12 height=12 alt='派生到我的代码片' style='position:relative;top:2px;left:2px;'/></a>");
        }
        
        $("[code_snippet_id]").each(function () {
            __s_id = $(this).attr("code_snippet_id");
            if (__s_id != null && __s_id != "" && __s_id != 0 && parseInt(__s_id) > 70020) {
                __code_tool = __get_code_toolbar(__s_id);
                $(this).prev().find(".tools").append(__code_tool);
            }
        });
    });
</script>

    </div>
      <!--new top-->
    
    <script id="csdn-toolbar-id" btnId="header_notice_num" wrapId="note1" count="5" subCount="5" type="text/javascript" src="http://static.csdn.net/public/common/toolbar/js/toolbar.js"></script>     <!--new top-->
   
    <link href="http://csdnimg.cn/comm_ask/css/ask_float_block.css" type="text/css" rel="stylesheet" />
    <script language='JavaScript' type='text/javascript' src='http://csdnimg.cn/comm_ask/js/libs/wmd.js'></script>
    <script language='JavaScript' type='text/javascript' src='http://csdnimg.cn/comm_ask/js/libs/showdown.js'></script>
    <script language='JavaScript' type='text/javascript' src='http://csdnimg.cn/comm_ask/js/libs/prettify.js'></script>
    <script language='JavaScript' type='text/javascript' src='http://csdnimg.cn/comm_ask/js/apps/ask_float_block.js'></script>

</body>
</html>
